package com.example.web.websystem.response;

/**
 * 全局返回码
 * <p>
 * 错误码为字符串类型，共 5 位，分成两个部分：错误产生来源+四位数字编号。
 * 说明：错误产生来源分为 A/B/C，
 * A 表示错误来源于用户，比如参数错误，用户安装版本过低，用户支付超时等问题；
 * B 表示错误来源于当前系统，往往是业务逻辑出错，或程序健壮性差等问题；
 * C 表示错误来源于第三方服务，比如 CDN 服务出错，消息投递超时等问题；
 * <p>
 * 四位数字编号从 0001 到 9999，大类之间的步长间距预留 100，参考文末附表 3。
 * <p>
 * Created by YangGang on 2019/03/24 16:59。
 */
public enum GlobalCodeEnum {
    SUCCESS("00000", "操作成功"),
    DEFAULT_SUCCESS("0", "操作成功"),
    ERROR("B0001", "服务器忙，请稍后再试！"),//非预期异常，代码执行报错。
    DEFAULT_ERROR("A0001", "异常说明"),//message被替换为用户自定义的异常说明

    NO_LOGIN("A1001", "未登陆"),
    LOGIN_CHECK_ERROR("A1002", "账号或密码错误"),
    TOKEN_EXPIRED("A1003", "TOKEN 已过期"),
    TOKEN_INVALID("A1004", "TOKEN 异常或无效"),
    NO_ROLE("A1005", "未分配角色"),
    ERROR_ROLE("A1006", "角色异常"),
    NOT_FIND_USER("A1007", "用户不存在"),
    TOKEN_IS_EMPTY("A1008", "TOKEN 数据不存在"),
    ROLE_ERROR("A1009", "角色数据错误"),
    NOT_FIND_GROUP("A1100", "组织不存在"),

    PARAMS_INVALID("A2001", "参数不合法"),;


    private String code;
    private String message;

    GlobalCodeEnum(String code, String message) {
        this.code = code;
        this.message = message;
    }


    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}

